package com.ry.bhwktapp.home.ui

/**
 * 对象表达式的使用  匿名、具名
 */
open class KtBase88 {
    open fun show() = println("这是show方法")
    open fun print() = println("这是print方法")
}


fun main() {
    //匿名对象表达式的使用
    val p = object : KtBase88() {
        override fun show() {
//         super.show()
            println("这是匿名函数show的实现")
        }

        override fun print() {
//         super.print()
            println("这是匿名函数print的实现")
        }
    }
//    p.print()
//    p.show()

//    对象表达式具名函数实现
    val p2 = KtBase88Object()
    p2.show()
    p2.print()

    //对java接口，使用对象表达式
    val p3 = object : Runnable {
        override fun run() {
            println("调用了Runnable接口")
        }
    }
    p3.run()

    //对java接口，用java最简洁的方式
    val p4 = Runnable {
        println("调用了Runnablep4接口")
    }
    p4.run()
}

/**
 * 对象表达式具名函数的使用
 */

class KtBase88Object : KtBase88() {
    override fun show() {
//        super.show()
        println("具名函数的show")
    }

    override fun print() {
//        super.print()
        println("具名函数的print")
    }
}
